layui.use(['table','form'], function() {
    var table = layui.table
        , form = layui.form
        , $ = layui.$;
    getAllCollege();
    getAllMajor();
    getAllTutor();
    var tableName = "class";
    var url = "/Class/class/getAllClasses";
    //班级表
    table.render({
        elem: '#class',
        height: 'full-70',
        url: '/Class/class/getAllClasses', //数据接口
        title: '班级表',
        page: true ,//开启分页
        toolbar: '#barbtn', //开启工具栏，此处显示默认图标，可以自定义模板，详见文档
        limits:[10,20,30,40],
        cols:
            [[ //表头
                { type: 'checkbox',fixed: 'left'},
                { field: 'id',title: 'ID',sort: true,hide: true},
                { field: 'classCode',title: '班级代码', sort: true},
                { field: 'classNumber',title: '班级人数', sort: true},
                { field: 'college',title: '学院', templet: (d) =>{
                    return getIdToName(d.college, collegeList, 0);
                    }},
                { field: 'major',title: '专业', templet: (d) => {
                        return getIdToName(d.major, majorList, 0);
                    }},
                { field: 'classTutor',title: '班导师', templet: (d) =>{
                    return getIdToName(d.classTutor, tutorList, 1);
                    }},
                { field: 'classLink',title: '班级联系人'},
                { field: 'classLinkPhone',title: '班级联系方式'},
                { fixed: 'right', width: 165, align:'center', toolbar: '#barDemo'}
            ]]
    });
    //监听行工具事件
    table.on('tool(tool)',function (obj) {
        let data=obj.data;
        let layEvent=obj.event;
        if(layEvent=="delete")
        {
            utils.del($, data, tableName, url);
            getAllCollege();
            getAllMajor();
            getAllTutor();
        }else if(layEvent == 'update'){
            sessionStorage.setItem('editType', 1);//设置session 修改类型
            sessionStorage.setItem('data', JSON.stringify(obj.data)) //键值
            layer.open({
                type:2,
                title:'修改班级',
                area: ['35%','80%'],
                content:'../add/classAdd.html'
            });
        }
    });
    //监听头工具栏事件
    table.on('toolbar(tool)', function(obj){
        let checkStatus = table.checkStatus(obj.config.id)//复选框数据
            ,data = checkStatus.data; //获取选中的数据 数组
        let arr=new Array();
        for(let i in data)
        {
            arr[i]=data[i].id;//取出id到列表
        }
        switch(obj.event){
            case 'add':
                layer.open({
                    type:2,
                    title:'新增班级',
                    area: ['35%','80%'],
                    content:'../add/classAdd.html'
                });
                break;
            case 'update':
                break;
            case 'delete':
                utils.delete($, data, tableName, arr);
                getAllCollege();
                getAllMajor();
                getAllTutor();
                break;
        };
    });
    //进行班级筛选
    form.on('submit(search)', function(data){
        var college= $("#searchCollege").val();
        var major= $("#searchMajor").val();
        table.reload('class', {
            url:'/Class/class/selectByLike',
            where: { //设定异步数据接口的额外参数，任意设
                "value":$('#searchName').val() || "",'college':college ,'major':major
            }
            ,page: {
                curr: 1 //重新从第 1 页开始
            }
        }); //只重载数据
        return false; //阻止表单跳转。如果需要表单跳转，去掉这段即可。
    });

});
var collegeList;
var majorList;
var tutorList;
//学院
function getAllCollege() {
    let $ = layui.$;
    collegeList = utils.getOption($, '/Class/college/getCollegeOption', 'searchCollege');
}
//专业
function getAllMajor() {
    let $ = layui.$;
    majorList = utils.getOption($, '/Class/college/getMajorOption', 'searchMajor');
}
//获取所有导师id和姓名
function getAllTutor() {
    let $ = layui.$;
    tutorList = utils.getIdList($, '/Class/user/getTutorOption');
}
//对班级的导师id进行匹配
function getIdToName(id, list, type) {
    for(let i in list){
        if(list[i].id == id){
            if(type == 0){
                return list[i].name;
            }else{
                return list[i].realName ? list[i].realName : '暂无数据';
            }
        }
    }
    return '';
}
